# Author    :Dun_Hz
# Time      :2024/3/14 21:40
# 全排列问题：将字符串str中的字符重新排列，列出所有情况

def permutation(str):
    n = len(str)            # 获取字符串的长度
    if n < 2:
        return str      #对于最后一个字符，直接返回，对应s则为剩下的最后的字符
    else:
        li = []
        for i in range(n):
            ch = str[i]
            re = str[0:i]+str[i+1:n]
            for s in permutation(re):       # 最后一项返回的是单个字符，然后剩下的返回列表
                li.append(ch+s)
    return li           # 非单个字符的，直接返回每个列表

print(permutation('abc'))